🔀 Bài 7: Câu lệnh điều kiện & Vòng lặp

Học cách điều khiển luồng chương trình với if-else, switch, và các vòng lặp

← Quay lại trang chủ

1. 🔍 JavaScript if, else, and else if

Câu lệnh if cho phép bạn thực thi code khi điều kiện là đúng. Cú pháp:

conditional-syntax.js
// Cú pháp if
if (điều_kiện) {
    // code thực thi khi điều kiện đúng
}

// Cú pháp if-else
if (điều_kiện) {
    // code thực thi khi điều kiện đúng
} else {
    // code thực thi khi điều kiện sai
}

// Cú pháp if-else if-else
if (điều_kiện_1) {
    // code thực thi khi điều kiện 1 đúng
} else if (điều_kiện_2) {
    // code thực thi khi điều kiện 2 đúng
} else {
    // code thực thi khi tất cả điều kiện đều sai
}


Ví dụ thực tế:


examples.js

// Kiểm tra tuổi
let age = 18;

if (age >= 18) {
  console.log("Bạn đã đủ tuổi bầu cử!");
} else {
  console.log("Bạn chưa đủ tuổi bầu cử.");
}

// Ví dụ với else if
let score = 85;

if (score >= 90) {
  console.log("Xuất sắc!");
} else if (score >= 80) {
  console.log("Giỏi!");
} else if (score >= 70) {
  console.log("Khá!");
} else if (score >= 60) {
  console.log("Trung bình!");
} else {
  console.log("Yếu!");
}
  

🎮 Thử ngay: Kiểm tra điểm số

2. 🔄 JavaScript Switch Statement

Câu lệnh switch được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau:

                                
switch (biểu_thức) {
    case giá_trị_1:
        // code thực thi khi biểu thức == giá trị 1
        break;
    case giá_trị_2:
        // code thực thi khi biểu thức == giá trị 2
        break;
    default:
        // code thực thi khi không có case nào khớp
}
                                
                            

Ví dụ thực tế:

switch-example.js

let day = 3;
let dayName;

switch (day) {
case 1:
    dayName = "Thứ 2";
    break;
case 2:
    dayName = "Thứ 3";
    break;
case 3:
    dayName = "Thứ 4";
    break;
case 4:
    dayName = "Thứ 5";
    break;
case 5:
    dayName = "Thứ 6";
    break;
case 6:
    dayName = "Thứ 7";
    break;
case 7:
    dayName = "Chủ nhật";
    break;
default:
    dayName = "Ngày không hợp lệ";
}

console.log(dayName); // "Thứ 4"
                        

🎮 Thử ngay: Chọn ngày trong tuần

3. 🔄 For Loop

Vòng lặp for được sử dụng để lặp một khối code một số lần cụ thể:

for (khởi_tạo; điều_kiện; cập_nhật) {
// code được thực thi trong mỗi vòng lặp
}
                        

Ví dụ thực tế:

// In ra các số từ 1 đến 5
for (let i = 1; i <= 5; i++) {
    console.log("Số: " + i);
}

// Tính tổng từ 1 đến 10
let sum = 0;
for (let i = 1; i <= 10; i++) {
    sum += i;
}
console.log("Tổng từ 1 đến 10: " + sum); // 55

// Lặp qua mảng
let fruits = ["táo", "cam", "chuối"];
for (let i = 0; i < fruits.length; i++) {
    console.log("Trái cây thứ " + (i + 1) + " : " + fruits[i]);
}

                
                        

🎮 Thử ngay: Tạo bảng cửu chương

4. 📦 For In

Vòng lặp for...in dùng để lặp qua các thuộc tính của một object:

for (variable in object) {
    // code được thực thi cho mỗi thuộc tính
}
                        

Ví dụ thực tế:

// Lặp qua object
let person = {
    name: "Nguyễn Văn A",
    age: 25,
    city: "Hà Nội"
};

for (let key in person) {
    console.log(key + ": " + person[key]);
}

// Kết quả:
// name: Nguyễn Văn A
// age: 25
// city: Hà Nội

// Lặp qua mảng (lấy index)
let colors = ["đỏ", "xanh", "vàng"];
for (let index in colors) {
    console.log("Index " + index + ": " + colors[index]);
}
                            
                        

🎮 Thử ngay: Hiển thị thông tin sinh viên

5. 📋 For Of

Vòng lặp for...of dùng để lặp qua các giá trị của một iterable object (như array, string):

for (variable of iterable) {
// code được thực thi cho mỗi giá trị
}
                        

Ví dụ thực tế:

// Lặp qua mảng
let fruits = ["táo", "cam", "chuối"];
for (let fruit of fruits) {
console.log("Trái cây: " + fruit);
}

// Lặp qua string
let message = "Hello";
for (let char of message) {
console.log("Ký tự: " + char);
}

// So sánh for...in vs for...of
let numbers = [10, 20, 30];

console.log("For...in (lấy index):");
for (let index in numbers) {
console.log(index); // 0, 1, 2
}

console.log("For...of (lấy giá trị):");
for (let value of numbers) {
console.log(value); // 10, 20, 30
}
                        

🎮 Thử ngay: Phân tích chuỗi

6. 🔄 While Loop

Vòng lặp while thực thi code khi điều kiện còn đúng.
Lưu ý: Nếu điều kiện luôn đúng, vòng lặp sẽ chạy mãi mãi (vòng lặp vô hạn).
Vòng lặp sẽ dừng lại khi điều kiện trở thành false.
Hãy đảm bảo trong thân vòng lặp có thao tác làm thay đổi điều kiện, nếu không sẽ bị lặp vô hạn!

while (điều_kiện) {
    // code được thực thi
    // nhớ cập nhật điều kiện để tránh vòng lặp vô hạn
}

// Do-while: thực thi ít nhất một lần
do {
    // code được thực thi
} while (điều_kiện);
                        

Ví dụ thực tế:


// While loop
let i = 1;
while (i <= 5) { console.log("Lần lặp thứ " + i);
    i++; // Quan trọng: cập nhật điều kiện
}

// Do-while loop
let j = 1;
do {
    console.log(" Do-while lần " + j);
    j++;
} while (j <= 3);

// Ví dụ thực tế: Đoán số
let secretNumber = 7;
let guess = 0;
let attempts = 0;

while (guess !== secretNumber) {
    guess = Math.floor(Math.random() * 10) + 1;
    attempts++;
    console.log(" Lần thử " + attempts + " : " + guess);
}
console.log(" Đoán đúng sau " + attempts + " lần!"); 

🎮 Thử ngay: Đếm ngược

7. ⏹️ JavaScript Break and Continue

break: Thoát khỏi vòng lặp ngay lập tức

continue: Bỏ qua lần lặp hiện tại và tiếp tục với lần lặp tiếp theo


// Break - Thoát khỏi vòng lặp
for (let i = 1; i <= 10; i++) {
  if (i === 5) {
    break; // Dừng vòng lặp khi i = 5
  }
  console.log(i); // In: 1, 2, 3, 4
}

// Continue - Bỏ qua lần lặp hiện tại
for (let i = 1; i <= 5; i++) {
  if (i === 3) {
    continue; // Bỏ qua khi i = 3
  }
  console.log(i); // In: 1, 2, 4, 5
}
                    
                

Ví dụ thực tế:


// Tìm số đầu tiên chia hết cho 7
for (let i = 1; i <= 100; i++) {
  if (i % 7 === 0) {
    console.log("Số đầu tiên chia hết cho 7: " + i);
    break; // Thoát sau khi tìm thấy
  }
}

// In các số lẻ từ 1 đến 10
for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) {
    continue; // Bỏ qua số chẵn
  }
  console.log("Số lẻ: " + i); // In: 1, 3, 5, 7, 9
}

// Với while loop
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let i = 0;

while (i < numbers.length) {
  if (numbers[i] > 5) {
    break; // Dừng khi gặp số > 5
  }

  if (numbers[i] % 2 === 0) {
    i++;
    continue; // Bỏ qua số chẵn
  }

  console.log("Số lẻ <= 5: " + numbers[i]);
  i++;
}
      

🎮 Thử ngay: Tìm số nguyên tố

📝 Tổng kết

Trong bài học này, chúng ta đã tìm hiểu về:

  • if, else, else if: Điều khiển luồng chương trình theo điều kiện
  • switch: Lựa chọn giữa nhiều trường hợp khác nhau
  • for: Lặp với số lần cụ thể
  • for...in: Lặp qua thuộc tính của object
  • for...of: Lặp qua giá trị của iterable
  • while: Lặp khi điều kiện đúng
  • break/continue: Điều khiển luồng trong vòng lặp

🧩 Bài tập luyện tập

  1. Bài 1: Tính tổng các số chẵn
    Đầu vào: Một số nguyên dương n.
    Đầu ra: Tổng các số chẵn từ 1 đến n.
    Ví dụ: n = 10Kết quả: 30
  2. Bài 2: Đếm số ký tự nguyên âm trong chuỗi
    Đầu vào: Một chuỗi str.
    Đầu ra: Số lượng ký tự nguyên âm (a, e, i, o, u) trong chuỗi.
    Ví dụ: str = "Hello World"Kết quả: 3
  3. Bài 3: Kiểm tra số nguyên tố
    Đầu vào: Một số nguyên dương n.
    Đầu ra: true nếu n là số nguyên tố, ngược lại false.
    Ví dụ: n = 7Kết quả: true
  4. Bài 4: Đảo ngược chuỗi
    Đầu vào: Một chuỗi str.
    Đầu ra: Chuỗi đảo ngược.
    Ví dụ: str = "abc"Kết quả: "cba"
  5. Bài 5: Tìm số lớn nhất trong mảng
    Đầu vào: Một mảng số arr.
    Đầu ra: Giá trị lớn nhất trong mảng.
    Ví dụ: arr = [2, 5, 1, 9, 3]Kết quả: 9